package Song.Han.demo03;

import java.util.*;

/*
* 如何遍历Map集合：
* 1. Set<K> keySet(): 通过键找值的方法
*   把map集合中的所有key取出来存储到Set集合中，通过迭代器遍历Set集合，get(Key)
* 2.Map.Entry<E,v>接口，在Map集合创建时创建Entry对象，用来记录键值对
*   Set<Map.Entry<k,v>>entrySet() 把Map集合内部的多个Entry对象取出来，存到一个Set集合中
* */
public class Demo02Map {
    public static void main(String[] args) {
       //demo01();
       demo02();
    }

    private static void demo02() {
        Map<String,Integer> map = new HashMap<>();
        map.put("赵丽颖",18);
        map.put("林志玲",19);
        map.put("迪丽热巴",17);

        //1.使用Map集合中的方法entrySet(),把Map集合内部的多个Entry对象取出来，存到一个Set集合中
        Set<Map.Entry<String,Integer>> set = map.entrySet();
        //2.遍历Set集合
        for (Map.Entry<String,Integer> entry :set) {
            //3.使用Entry对象中的方法getKey()和getValue获取键与值
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key+"="+value);
        }
    }

    public static void demo01(){
        Map<String,Integer> map = new HashMap<>();
        map.put("赵丽颖",18);
        map.put("林志玲",19);
        map.put("迪丽热巴",17);

        //1.使用Map集合中的keySet()，把Map集合所有的key取出来，存到Set集合中
        Set<String> set = map.keySet();

        //2.遍历Set集合
        //使用迭代器
        Iterator<String> it = set.iterator();
        while (it.hasNext()){
            String key = it.next();
            //3.通过Map集合中的方法get(Key)
            Integer value = map.get(key);
            System.out.println(key+"="+value);
        }

        System.out.println("--------------------");

        //用增强for遍历Set集合
        for (String key:map.keySet()) {
            Integer value = map.get(key);
            System.out.println(key+"="+value);
        }
    }
}
